// 版权归 Epic Games, Inc. 所有。保留所有权利。

#include "LyraTextHotfixConfig.h"
#include "Internationalization/PolyglotTextData.h"
#include "Internationalization/TextLocalizationManager.h"

#include UE_INLINE_GENERATED_CPP_BY_NAME(LyraTextHotfixConfig)

/** 构造函数 */
ULyraTextHotfixConfig::ULyraTextHotfixConfig(const FObjectInitializer& ObjectInitializer)
	: Super(ObjectInitializer) // 调用父类构造函数
{
}

/** 应用文本替换 */
void ULyraTextHotfixConfig::ApplyTextReplacements() const
{
	FTextLocalizationManager::Get().RegisterPolyglotTextData(TextReplacements); // 注册多语言文本数据
}

/** 后初始化属性 */
void ULyraTextHotfixConfig::PostInitProperties()
{
	Super::PostInitProperties(); // 调用父类方法
	ApplyTextReplacements(); // 应用文本替换
}

/** 重新加载配置后 */
void ULyraTextHotfixConfig::PostReloadConfig(FProperty* PropertyThatWasLoaded)
{
	Super::PostReloadConfig(PropertyThatWasLoaded); // 调用父类方法
	ApplyTextReplacements(); // 应用文本替换
}

#if WITH_EDITOR
/** 编辑属性后 */
void ULyraTextHotfixConfig::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
	Super::PostEditChangeProperty(PropertyChangedEvent); // 调用父类方法
	ApplyTextReplacements(); // 应用文本替换
}
#endif